package org.dingfugui.triple.link;

import org.dingfugui.triple.connection.Connection;

import java.io.Closeable;
import java.io.IOException;

/**
 * 连接方式
 * 通过控制连接的获取方式，支持直连或软负载
 * 作为连接的容器，提供连接池功能
 * Created by fugui.ding on 2015/4/2.
 */
public interface Link extends Closeable {

    int DEFAULT_PORT = 8691;

    /**
     * 获取新的连接
     *
     * @return
     */
    Connection getConnection();

    /**
     * 销毁连接
     * 如果是短链接则直接关闭，如果是长连接则回收备用
     *
     * @param con
     */
    void destory(Connection con);

    /**
     * 关闭
     *
     * @throws IOException
     */
    void close() throws IOException;

}
